---
displayed_sidebar: "Chinese"
---

# previous_day

## 功能

根据输入的日期值，返回它之前的那个星期几所对应的日期。比如 `previous_day('2023-04-06', 'Monday')` 返回 '2023-04-06' 之前的那个星期一所对应的日期。

该函数从 3.1 版本开始支持。相反函数为 [next_day](./next_day.md)。

## 语法

```SQL
DATE previous_day(DATETIME|DATE date_expr, VARCHAR dow)
```

## 参数说明

- `date_expr`：输入的日期值，支持的数据类型为 DATE 或 DATETIME。
- `dow`：星期几。有效值为星期和以下缩写形式，区分大小写。

  | DOW_FULL  | DOW_2 | DOW_3 |
  | --------- | ----- |:-----:|
  | Sunday    | Su    | Sun   |
  | Monday    | Mo    | Mon   |
  | Tuesday   | Tu    | Tue   |
  | Wednesday | We    | Wed   |
  | Thursday  | Th    | Thu   |
  | Friday    | Fr    | Fri   |
  | Saturday  | Sa    | Sat   |

## 返回值说明

返回一个日期值。

如果 `dow` 输入值非法，会返回报错。`dow` 区分大小写。

如果输入的日期值非法或者输入的日期为 NULL，则返回 NULL。

## 示例

```Plain
-- 返回 2023-04-06 之前的那个星期一所对应的日期。2023-04-06 为周四，它之前的星期一所对应的日期为 2023-04-03。

MySQL > select previous_day('2023-04-06', 'Monday');
+--------------------------------------+
| previous_day('2023-04-06', 'Monday') |
+--------------------------------------+
| 2023-04-03                           |
+--------------------------------------+

MySQL > select previous_day('2023-04-06', 'Tue');
+-----------------------------------+
| previous_day('2023-04-06', 'Tue') |
+-----------------------------------+
| 2023-04-04                        |
+-----------------------------------+

MySQL > select previous_day('2023-04-06 20:13:14', 'Fr');
+-------------------------------------------+
| previous_day('2023-04-06 20:13:14', 'Fr') |
+-------------------------------------------+
| 2023-03-31                                |
+-------------------------------------------+
```

## keyword

PREVIOUS_DAY, PREVIOUS, previousday
